1
SIMT 실행 모델과 워프 분할
AI032Lesson 6
00:00

SIMT(Single-Instruction, Multiple-Thread) 모델은 GPU 아키텍처의 핵심입니다. 개발자는 개별 스레드를 프로그래밍하지만, 하드웨어는 이를 두 단계 계층 구조인 그리드블록으로 조율합니다. 효율을 극대화하기 위해 하드웨어는 이러한 블록을 32개 스레드로 구성된 단위로 추가로 분할하며, 이를 워프라고 합니다.

1. SIMT vs. SIMD

CPU SIMD(SSE/AVX 등)처럼 수동으로 데이터를 레지스터에 패킹해야 하는 것과 달리, SIMT는 스레드가 독립적으로 보이도록 허용합니다. 하드웨어는 자동으로 스레드를 워프로 그룹화하고, 32개의 스레드 모두가 동기화하여 실행할 수 있도록 한 명령어를 동시에 가져옵니다.

2. 선형화 규칙

개발자는 threadIdx.x, y, z 논리적 처리를 위해 사용하지만, 하드웨어는 이를 스케줄링을 위해 1차원 시퀀스로 평탄화합니다:

인덱스 = x + (y × blockDim.x) + (z × blockDim.x × blockDim.y)
2차원 블록(8 × 8)워프 0: ID 0-31워프 1: ID 32-63

왜냐하면 x 차원 이 가장 빠르게 변하는 인덱스이기 때문에, 연속적인 threadIdx.x 값을 가진 스레드는 일반적으로 같은 워프에 배치되며, 이는 메모리 코일리싱라고 합니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>